package day09.exer;

import java.util.Scanner;
import java.util.Vector;

/*
 * 利用Vector代替数组处理：从键盘读入学生成绩（以负数代表输入结束），找出最高分，并输出学生成绩等级。
	提示：数组一旦创建，长度就固定不变，所以在创建数组前就需要知道它的长度。
	而向量类java.util.Vector可以根据需要动态伸缩。
	创建Vector对象：Vector v=new Vector();
	给向量添加元素：v.addElement(obj);   //obj必须是对象
	取出向量中的元素：Object  obj=v.elementAt(0);
	注意第一个元素的下标是0，返回值是Object类型的。
	计算向量的长度：v.size();
	若与最高分相差10分内：A等；20分内：B等；
	      30分内：C等；其它：D等
 */
public class TestScore {
	public static void main(String[] args) {
		//1.创建Scanner的对象，提示从键盘输入学生的成绩（以负数代表输入结束）
		Scanner s = new Scanner(System.in);
		System.out.println("请输入学生的成绩：（以负数代表输入结束）");
		//2.for(;;),从键盘依次获取学生的成绩，并填入由Vector v=new Vector()创建的对象v中。
		Vector v=new Vector();
		int maxScore = 0;//记录最高分
		for(;;){
			int score = s.nextInt();
			if(score < 0){
				break;
			}
			//3.求出所有输入的正的成绩中的最高分
			//获取学生成绩中的最高分
			if(maxScore < score){
				maxScore = score;
			}
			//依次将学生成绩村放入v中
			Integer score1 = new Integer(score);
			v.addElement(score1);
		}
		
		//4.通过v.elementAt(i)依次获取填入v中的元素，同时判断一下各个分数的等级并输出。
		for(int i = 0;i < v.size();i++){
			Integer score = (Integer)v.elementAt(i);
			char level;
			if(maxScore - score <= 10){
				level = 'A';
			}else if(maxScore - score <= 20){
				level = 'B';
			}else if(maxScore - score <= 30){
				level = 'C';
			}else{
				level = 'D';
			}
			System.out.println("学生成绩为：" + score + ",等级为：" + level);
		}
	}
}
